package cn.source.zk.mapper;

import cn.source.zk.domain.entity.Channel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

@Mapper
public interface ZkChannelMapper {

    /**
     * 查询通道分页列表
     * @param channel
     * @return
     */
    List<Channel> getListPage(Channel channel);

    /**
     * 新增通道
     * @param channel
     * @return
     */
    int add(Channel channel);

    /**
     * 根据num查询通道
     * @param num
     * @return
     */
    Channel getByNum(@Param("num") Long num);

    /**
     * 修改通道
     * @param channel
     * @return
     */
    int edit(Channel channel);

    /**
     * 批量删除通道
     * @param nums
     * @return
     */
    int remove(@Param("nums") List<Long> nums);

    /**
     * 检查通道名称是否存在
     * @param channel
     * @return
     */
    int checkChannelNameExist(Channel channel);

    String getDeviceByTdGuid(String tdGuid);

    /**
     * 根据tdGuids获取通道列表
     * @param tdGuids
     * @return
     */
    List<Channel> getByTdGuid(@Param("tdGuids") List<String> tdGuids);

    List<Channel> getChannelByDeviceNums(@Param("nums") List<Long> nums);

    /**
     * 根据并网点num列表查询channel
     * @param nums
     * @return
     */
    List<Channel> getByConnectionPointNums(@Param("nums") List<Long> nums);

    List<Channel> getChannelListByDeviceNums(@Param("deviceNums") ArrayList<Long> deviceNums);

    List<Long> getChannelNumByDeviceNum(@Param("deviceNum") Long deviceNum);

    Channel getChannelByTdGuid(@Param("tdGuid") String tdGuid);
}
